An inherent property of digital programs (e.g. computer programs, circuits etc.) is that a user can run a single digital program on any number of inputs, computing all the outputs that the user desires. This property is inherent, because once a user is given the code of a program, he can use it as many times as he wishes, copy it, distribute it, etc. The user can always make copies of the program he receives, and run each of them on different inputs. Furthermore, even if some software protection mechanism is built into the program, there is no known method to guarantee that the code cannot be reverse engineered or that the protection cannot be removed. Once the software protection is removed, the user can run the program on any input of his or her choice.